package com.fjwt.gz.db.vo;

import java.util.Date;
import java.util.List;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fjwt.gz.db.entity.AwardAgentEntity;
import com.fjwt.gz.db.entity.AwardMchEntity;
import com.fjwt.gz.db.entity.AwardSettingEntity;
import lombok.Data;

/**
 * <p>
 * 卡券活动信息表
 * </p>
 *
 * @author shiyonghao
 * @since 2025-04-09
 */
@Data
public class AwardCouponVO {

    /**
     * 卡券id
     */
    private Long couponId;

    /**
     * 出资方id，为空时平台出资
     */
    private Long payAuthId;

    /**
     * 卡券名称（如：满50减10）
     */
    private String couponName;

    /**
     * 卡券名称副标题（解释说明）
     */
    private String couponDes;

    /**
     * 预算金额，单位分
     */
    private Integer couponAmount;

    /**
     * 卡券数量
     */
    private Integer couponNum;

    /**
     * 卡券领取数量
     */
    private Integer couponGet;

    /**
     * 活动类型：
1 支付宝满减活动 2 支付宝随机减活动 
3微信满减活动 4微信随机减活动 
5微信代金券   6微信商家券
     */
    private Integer couponType;

    /**
     * 活动开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 活动结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 券领取后，n天内可用（在活动有效期内）
     */
    private Integer availableDays;

    /**
     * 状态 0草稿 1配置中（下线）  2配置完成（上线）  3 已过期  4：已对账成功 5：对账失败
     */
    private Integer state;

    /**
     * 活动备注（卡券核销规则）
     */
    private String remark;

    /**
     * 机构ID
     */
    private String agentNo;

    /**
     * 一级机构号
     */
    private String agentNo1;

    /**
     * 二级机构号
     */
    private String agentNo2;

    /**
     * 三级机构号
     */
    private String agentNo3;

    /**
     * 四级机构号  如果机构号为空则写 0
     */
    private String agentNo4;

    /**
     * 批次号
     */
    private String batchNo;

    /**
     * 乐观锁
     */
    private Integer version;

    /**
     * 出资方配置活动信息
     */
    private String payConfig;

    /**
     * 卡券面值
     */
    private Integer couponPrice;

    /**
     * 起付金额（满多少元试用）
     */
    private Integer payAmount;

    /**
     * 是否限卡支付：0不限制卡支付 1限制邮储借记卡支付(储蓄卡) 2 限制邮政贷记卡（信用卡）
     */
    private Integer isRestrictBank;

    /**
     * 活动期间每个用户可领取最大数量
     */
    private Integer everyoneMaxNum;

    /**
     * 立减活动随机减，减价开始区间
     */
    private Integer priceStart;

    /**
     * 立减活动随机减，减价结束区间
     */
    private Integer priceEnd;

    /**
     * 活动期间单天预算发放上限
     */
    private Integer everydayMaxNum;

    /**
     * 对账文件oss记录ID
     */
    private Long billOssRecordId;

    /**
     * 对账失败信息
     */
    private String billErrorMsg;

    /**
     * 更新建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 创建者id
     */
    private Long createdUid;

    /**
     * 卡券商户列表
     */
    private List<AwardMchEntity> awardMchList;

    /**
     * 卡券机构列表
     */
    private List<AwardAgentEntity> awardAgentList;

    /**
     * 已配置活动名称
     */
    private String activityName;

    /**
     * 奖品配置信息
     */
    private AwardSettingEntity awardSetting;

    /**
     * 三方回参
     */
    private String thirdParam;

    private Long fansAwardId;

    private Long activityId;

    private String niceName;

    private String phone;

    private String mchNo;

    private String mchName;

    private String agentName;

    private Date writeTime;

    private String sendAgentNo;

    private String sendAgentName;

    private String sendMchNo;

    private String sendMchName;

    private String extraJson;

    private Long activityAwardId;

    private String realName;

    private String templateName;

    private String activityTypeName;


}
